'''
dict {key:value}
'''
from collections import defaultdict

'''
del  删
'''

tinydict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}

del tinydict['Name']  # 删除键 'Name'
print(tinydict)
tinydict.clear()  # 清空字典
del tinydict  # 删除字典



'''
keys(): 返回一个包含字典所有key的对象
values(): 返回一个包含字典所有value的对象
items(): 返回一个包含在列表中所有（键，值）元组的对象
'''

tinydict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
print(tinydict)
print(tinydict.keys())
print(tinydict.values())
print(tinydict.items())




'''
字典函数
dict.fromkeys(字典，默认插入值) 元组中包含key但values为空时，填充values
'''

t=('a','b','c')
print(dict.fromkeys(t,1))



'''
字典函数

字典.get()  返回指定键的值，如果键不在字典中返回默认值 None 或者指定的默认值。
'''

tinydict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
print(tinydict.get('a','Name'))


'''
字典函数

update() 函数把 dict2 的 key/value  对更新到新字典 dict 里。

'''
k={'1':'1'}
tinydict.update(k)
print(tinydict)



'''
字典函数
pop() 方法删除字典给定键 key 所对应的值，返回值为被删除的值。key值必须给出。 否则，返回default值。
'''

tinydict.pop('1')
print(tinydict)

#元组转字典
s= [('yellow',1), ('yellow',2),('blue',2),  ('blue',4), ('red',1)]
dict1={}

for i,j in s:
    dict1[i]=j
print(dict1)

#重复值的添加
s= [('yellow',1), ('blue',2), ('yellow',3), ('blue',4), ('red',5)]
d= defaultdict(list)
for k, v in s:

     d[k].append(v)

print(d.items())


o=d.items()


print(sorted(s,key=lambda x:x[1]))



p=sorted(s,key=lambda x:x[1])
k={}

for i ,j in p:
    k[i]=j

print(k)





dicta={}
for b,c in p:
    dicta[b]=c

print(dicta)











d={'a':24,'g':52,'i':12,'k':33}
a=[-55,12,45,456]

print(sorted(a, key=lambda x: abs(x)))